package zeus.controller;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.model.SelectItem;
import javax.inject.Named;

import zeus.converter.SimpleIndexConverter;
import zeus.model.Quarto;
import zeus.model.TipoQuarto;
import zeus.service.EjbQuartoService;

@Named("quartoAction")
@RequestScoped
public class QuartoAction {
	
	private Quarto quarto;
	
	@EJB
	EjbQuartoService quartoService;
	
	public QuartoAction(){
		this.quarto = new Quarto();
	}
	
	public String cadastrarQuarto(){
		if(!quartoService.numeroJaExiste(quarto.getNumero())){
			quartoService.CadastrarQuarto(quarto);
			FacesMessage cadastro = new FacesMessage(FacesMessage.SEVERITY_INFO, 
				"Cadastro Realizado","Cadastro Realizado com Sucesso");
			FacesContext.getCurrentInstance().addMessage(null, cadastro);
		}else{
			FacesMessage cadastro = new FacesMessage(FacesMessage.SEVERITY_WARN, 
					"Numero Incorreto","Já Existe um quarto com esse numero");
				FacesContext.getCurrentInstance().addMessage(null, cadastro);
		}
		
		return "/administrativo.xhtml";
	}

	public Quarto getQuarto() {
		return quarto;
	}

	public void setQuarto(Quarto quarto) {
		this.quarto = quarto;
	}
	
	
	public List<SelectItem> getTiposQuartos(){
		List<SelectItem> tiposQuartos = new ArrayList<SelectItem>();
		
		for(TipoQuarto t : TipoQuarto.values()){
			tiposQuartos.add(new SelectItem(t, t.getNome()));
		}
		
		return tiposQuartos;
	}
	
	public Converter getConverter(){
		return new SimpleIndexConverter();
	}
	
	
	
}
